A broad array of libraries and plugins are available for JavaScript, which allows for easier development of JavaScript-based applications. Because these libraries have already been debugged and optimized, a JavaScript developer will usually assume that the libraries themselves do not have to be debugged. Additionally, many of these tools are compressed and minified so that the underlying code is obfuscated and made unreadable to the developer, which prevents JavaScript developers from further modifying these third-party libraries. Errors in a JavaScript developer's code may create errors within these libraries, which can cause confusion when debugging the code if the developer cannot or does not want to modify the library code. Instead, the developer is likely more interested in identifying errors in his or her own code.